package com.shujia.sql

import org.apache.spark.SparkContext
import org.apache.spark.rdd.RDD
import org.apache.spark.sql.{DataFrame, SparkSession}

object Demo01SparkSessio {
  def main(args: Array[String]): Unit = {
    // 创建一个Spark SQL的入口 SparkSession
    val spark: SparkSession = SparkSession
      .builder()
      .appName("Demo01SparkSessio")
      .master("local")
      .getOrCreate()

    // 获取SparkContext
    val sc: SparkContext = spark.sparkContext

    // 通过SparkContext读取文件
    val stuRDD: RDD[String] = sc.textFile("Spark/data/students.txt")
    // 打印
    stuRDD.take(10).foreach(println)

    // 通过SparkSession读取文件
    val stuDF: DataFrame = spark
      .read
      .format("csv") // 指定读取文件的格式
      .option("sep", ",") // 指定分隔符
      .schema("id String,name String,age Int,gender String,clazz String")
      .load("Spark/data/students.txt")

    // 打印
    stuDF.show(10) // 指定打印的行数
    stuDF.show(5, truncate = false) // 如果某列数据太长 默认会被截断
    stuDF.show() // 如果什么都不指定 默认打印20条


  }

}
